summaryrefslogtreecommitdiffstats
path: root/srclimit.h
diff options
context:
space:
mode:
Diffstat (limited to 'srclimit.h')
-rw-r--r--srclimit.h22
1 files changed, 21 insertions, 1 deletions
diff --git a/srclimit.h b/srclimit.h
index 6e04f32..74a6f2b 100644
--- a/srclimit.h
+++ b/srclimit.h
@@ -13,6 +13,26 @@
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
-void srclimit_init(int, int, int, int);
+struct xaddr;
+
+struct per_source_penalty;
+
+void srclimit_init(int, int, int, int,
+ struct per_source_penalty *, const char *);
int srclimit_check_allow(int, int);
void srclimit_done(int);
+
+#define SRCLIMIT_PENALTY_NONE 0
+#define SRCLIMIT_PENALTY_CRASH 1
+#define SRCLIMIT_PENALTY_AUTHFAIL 2
+#define SRCLIMIT_PENALTY_GRACE_EXCEEDED 3
+#define SRCLIMIT_PENALTY_NOAUTH 4
+
+/* meaningful exit values, used by sshd listener for penalties */
+#define EXIT_LOGIN_GRACE 3 /* login grace period exceeded */
+#define EXIT_CHILD_CRASH 4 /* preauth child crashed */
+#define EXIT_AUTH_ATTEMPTED 5 /* at least one auth attempt made */
+
+void srclimit_penalise(struct xaddr *, int);
+int srclimit_penalty_check_allow(int, const char **);
+void srclimit_penalty_info(void);