8 #include <netinet/in.h> 12 #define RTTPD_VERSION "6.2.25" 14 #define RTTPD_MAJOR_VERSION 6 15 #define RTTPD_MINOR_VERSION 2 16 #define RTTPD_PATCH_VERSION 25 21 #define AUTH_EXPORT extern __declspec(dllimport) 34 #define MAX_OBNAME 4096 38 #define MAX_USERNAME 255 40 typedef struct _string_pair_type string_pair_t;
56 typedef struct _checkwriteinfo checkwriteinfo_t;
125 AUTH_INVALID_USER = -3,
126 AUTH_INVALID_PASS = -4,
127 AUTH_INVALID_ADDR = -5,
128 AUTH_ACCT_EXPIRED = -6,
129 AUTH_USER_LC_EXCEEDED = -7,
130 AUTH_SITE_LC_EXCEEDED = -8,
151 typedef struct _auth_map_type auth_map_t;
153 struct _auth_map_type
159 typedef enum _http_method http_method_t;
177 int (*auth_new_user)(
session_t *session,
char *user,
char *pass);
265 int (*auth_map_object)(
session_t *session,
char *name,
char *mapped,
int *len);
311 int (*auth_http_request)(
char *user,
char *pass, http_method_t method,
char *path);
344 int (*auth_check_permission_update)(
session_t *session,
object_t *obj,
char *key,
int auth_map_size, auth_map_t *keyvalues);
349 int (*auth_check_write_extended)(
session_t *session,
object_t *obj,
int field_count, string_pair_t * fields,
char *contrib_id);
373 void (*auth_global_permission_update)(
object_t *obj,
char *key,
int auth_map_size, auth_map_t *keyvalues, auth_perm_operation_t operation);
403 struct _string_pair_type
449 AUTH_EXPORT
int auth_new_subscription(
char *prefix,
char *subject,
void *user_context,
void (*loaded)(
void *,
int,
char *),
void (*failed)(
void *,
int,
char *),
void (*status)(
void *,
int,
char *,
int));
457 #define SESSION_ID_LEN_MIN 6 461 #define SESSION_ID_LEN_DEFAULT 12 465 #define SESSION_ID_LEN_MAX 256 493 struct sockaddr_in addr;
502 typedef struct _fieldset fieldset_t;
531 THREADS_AUTH_LOGIN = 600,
532 THREADS_AUTH_MAPPED = 601,
533 THREADS_AUTH_CHECKWRITE = 602
571 struct _checkwriteinfo
AUTH_EXPORT int auth_eject_username_by_app_id(char *name, int num, char *app_id)
Wrapper for auth_eject_username_by_app_id that takes the user name instead of a _user pointer...
Definition: auth.c:2024
char * authorization
Definition: rttpd.h:499
Describes the callback functions that should be implemented by an auth module.
Definition: rttpd.h:175
AUTH_EXPORT int auth_verify_signature_username(char *expected_username, char *token)
Verify that the supplied token is for the expected username.
Definition: auth.c:5969
The user object.
Definition: rttpd.h:395
char * addrname
Definition: rttpd.h:494
AUTH_EXPORT void auth_invalidate_sessions(user_t *user, int num, int flags)
Invalidate all sessions for a user.
Definition: auth.c:2259
struct _session_request_retry session_request_retry_t
Structure used to hold request retry information when things are overloaded.
Definition: rttpd.h:469
AUTH_EXPORT object_t * infoob_new_object(const char *name)
Creates a new system object.
Definition: infoob.c:334
#define MAX_OBNAME
Definition: rttpd.h:34
void(* eventcallback_t)(void *data, short event, short code)
Definition of the callback function for delayed events.
Definition: rttpd.h:66
_auth_perm_operation
Operations for the __authfuncs::auth_global_permission_update() function.
Definition: rttpd.h:144
int uid
Definition: rttpd.h:487
_object_type
Definition of RTTP object types.
Definition: rttpd.h:71
AUTH_EXPORT void auth_listener_throttle(char *session_id, char *object_name, char *command)
Throttle an individual subscription on a user's session.
Definition: auth.c:2432
AUTH_EXPORT int auth_eject_username_sessions(char *name, int num)
Wrapper for auth_eject_sessions that takes the user name instead of a _user pointer.
Definition: auth.c:1926
short msg
Definition: rttpd.h:553
AUTH_EXPORT void infoob_add_str(object_t *obj, int field, const char *value)
Adds a value to a system object.
Definition: infoob.c:399
AUTH_EXPORT void auth_subscribe(int subscriptionId)
Subscribes to subject.
Definition: auth.c:6128
time_t s_loggedin
Definition: rttpd.h:491
char * cookie
Definition: rttpd.h:498
AUTH_EXPORT int signature_check(char *key_id, char *token)
Provides a mechanism for validating a KeyMaster-generated encrypted single-use token.
Definition: auth.c:1390
AUTH_EXPORT char * object_get_value(object_t *obj, int32_t fieldnum, char *buf, int len)
The function returns the value of a specified field in an object.
Definition: object.c:3849
AUTH_EXPORT void auth_invalidate_all_sessions(int flags)
Invalidate all sessions for all users in the system.
Definition: auth.c:2355
void * auth
Definition: rttpd.h:400
char * nodename
Definition: rttpd.h:599
char * password
Definition: rttpd.h:398
AUTH_EXPORT void infoob_add_data(object_t *obj, const int *fields, const char **values, int count)
Adds an array of values to a system object.
Definition: infoob.c:484
AUTH_EXPORT int auth_new_subscription(char *prefix, char *subject, void *user_context, void(*loaded)(void *, int, char *), void(*failed)(void *, int, char *), void(*status)(void *, int, char *, int))
Creates a subscription for use with auth_subscribe and auth_unsubscribe.
Definition: auth.c:6107
AUTH_EXPORT void auth_invalidate_sessions_by_name(char *name, int num, int flags)
Invalidate all sessions for a username.
Definition: auth.c:2296
AUTH_EXPORT int infoob_add_field(const char *name, int flags)
Creates a new field for updating system objects.
Definition: infoob.c:310
char * name
Definition: rttpd.h:524
unsigned short sessions
Definition: rttpd.h:600
time_t s_connected
Definition: rttpd.h:490
user_t * user
Definition: rttpd.h:488
AUTH_EXPORT int auth_create_object(char *name, object_type_t type)
Create an object within the Liberator.
Definition: auth.c:5856
int ref
Definition: rttpd.h:399
object_type_t type
Definition: rttpd.h:525
The RTTP Session Object.
Definition: rttpd.h:484
char * application_id
Definition: rttpd.h:496
unsigned long s_updates
Definition: rttpd.h:492
unsigned short max_sessions
Definition: rttpd.h:601
short msg
Definition: rttpd.h:566
AUTH_EXPORT int auth_eject_sessions_by_app_id(user_t *user, int num, char *app_id)
Eject sessions with matching application id.
Definition: auth.c:2068
Callback that is called when an object changes initial state.
Definition: rttpd.h:522
AUTH_EXPORT int auth_get_login_count(char *username)
Get the number of current logins for a username.
Definition: auth.c:5995
AUTH_EXPORT void auth_invalidate_object(char *name, int flags)
Invalidate an object.
Definition: auth.c:2328
_auth_result
Return codes for the authentication functions.
Definition: rttpd.h:118
void * auth
Definition: rttpd.h:489
AUTH_EXPORT int auth_get_user_session_count_by_name(char *object_name)
Return the number of active sessions.
Definition: auth.c:5801
AUTH_EXPORT size_t auth_get_extra_data(char *token, char *buffer, size_t max_len)
Gets the extra data from the token. The extra data is expected to be the 4th part of the ~ separated ...
Definition: auth.c:6030
AUTH_EXPORT void auth_delete_object(char *name)
Delete an object within the Liberator.
Definition: auth.c:5884
AUTH_EXPORT void auth_unsubscribe(int subscriptionId)
Unsubscribes to subject.
Definition: auth.c:6171
char * username
Definition: rttpd.h:397
char * machine_id
Definition: rttpd.h:497
The map information object.
Definition: rttpd.h:563
AUTH_EXPORT char * auth_get_token_parameter(const char *keymaster_token, const char *parameter_to_query)
Return a value for the given field within a keymaster token.
Definition: auth.c:5725
The RTTP node object.
Definition: rttpd.h:597
AUTH_EXPORT void infoob_add_int(object_t *obj, int field, int value)
Adds a numerical value to a system object.
Definition: infoob.c:440
AUTH_EXPORT int auth_eject_sessions(user_t *user, int num)
Eject sessions.
Definition: auth.c:1969
AUTH_EXPORT int auth_eject_username_by_machine_id(char *name, int num, char *machine_id)
Wrapper for auth_eject_sessions_by_machine_id that takes the user name instead of a _user pointer...
Definition: auth.c:2160
char * auth_filename_expand(char *format, char *buf, size_t buflen)
Expand a a filename pattern into a fully qualified filename.
Definition: auth.c:5842
AUTH_EXPORT int auth_eject_sessions_by_machine_id(user_t *user, int num, char *machine_id)
Eject sessions based on the username by machine id.
Definition: auth.c:2201
Structure passed between invalidation routines.
Definition: rttpd.h:550
char type
Definition: rttpd.h:495
#define SESSION_ID_LEN_MAX
Definition: rttpd.h:465
void * auth
Definition: rttpd.h:526
AUTH_EXPORT void auth_session_throttle(char *session_id, char *command)
Throttle a users' session.
Definition: auth.c:2384