diff options
| author | Franklin Wei <git@fwei.tk> | 2015-12-30 15:10:05 -0500 |
|---|---|---|
| committer | Franklin Wei <git@fwei.tk> | 2015-12-30 15:10:05 -0500 |
| commit | 954fffd4845642e2fa3af0ee75e845ef68497766 (patch) | |
| tree | 234219215e2fc86d62cdafa50daaea24ec439f69 /src/netcosm.h | |
| parent | 22f5eaa809a8daac6ce8bf421b89290f7258b42e (diff) | |
| download | netcosm-954fffd4845642e2fa3af0ee75e845ef68497766.zip netcosm-954fffd4845642e2fa3af0ee75e845ef68497766.tar.gz netcosm-954fffd4845642e2fa3af0ee75e845ef68497766.tar.bz2 netcosm-954fffd4845642e2fa3af0ee75e845ef68497766.tar.xz | |
docs and stuff
Diffstat (limited to 'src/netcosm.h')
| -rw-r--r-- | src/netcosm.h | 54 |
1 files changed, 24 insertions, 30 deletions
diff --git a/src/netcosm.h b/src/netcosm.h index 31edb50..3e056d2 100644 --- a/src/netcosm.h +++ b/src/netcosm.h @@ -16,6 +16,8 @@ * along with this program. If not, see <http://www.gnu.org/licenses/>. */ +#ifndef _NC_H_ +#define _NC_H_ #include <arpa/inet.h> #include <ctype.h> #include <errno.h> @@ -39,6 +41,7 @@ #include <time.h> #include <unistd.h> +#include "auth.h" #include "hash.h" #include "telnet.h" @@ -55,18 +58,19 @@ /* child<->master commands */ /* children might not implement all of these */ /* meanings might be different for the server and child, see comments */ -#define REQ_NOP 0 /* server, child: do nothing */ -#define REQ_BCASTMSG 1 /* server: broadcast text; child: print following text */ -#define REQ_LISTCLIENTS 2 /* server: list childs */ -#define REQ_CHANGESTATE 3 /* server: change child state flag */ -#define REQ_CHANGEUSER 4 /* server: change child login name */ -#define REQ_HANG 5 /* <UNIMP> server: loop forever */ -#define REQ_KICK 6 /* server: kick PID with message; child: print message, quit */ -#define REQ_WAIT 7 /* server: sleep 10s */ -#define REQ_GETROOMDESC 8 /* server: send child room description */ -#define REQ_SETROOM 9 /* server: set child room */ -#define REQ_MOVE 10 /* server: move child based on direction; child: success or failure */ -#define REQ_GETROOMNAME 11 /* server: send child's room name */ +#define REQ_NOP 0 /* server, child: do nothing */ +#define REQ_BCASTMSG 1 /* server: broadcast text; child: print following text */ +#define REQ_LISTCLIENTS 2 /* server: list childs */ +#define REQ_CHANGESTATE 3 /* server: change child state flag */ +#define REQ_CHANGEUSER 4 /* server: change child login name */ +#define REQ_HANG 5 /* <UNIMP> server: loop forever */ +#define REQ_KICK 6 /* server: kick PID with message; child: print message, quit */ +#define REQ_WAIT 7 /* server: sleep 10s */ +#define REQ_GETROOMDESC 8 /* server: send child room description */ +#define REQ_SETROOM 9 /* server: set child room */ +#define REQ_MOVE 10 /* server: move child based on direction; child: success or failure */ +#define REQ_GETROOMNAME 11 /* server: send child's room name */ +#define REQ_LISTROOMCLIENTS 12 /* server: list clients in child's room */ /* child states, sent as an int to the master */ #define STATE_INIT 0 /* initial state */ @@ -108,12 +112,6 @@ typedef int room_id; -struct authinfo_t { - bool success; - const char *user; - int authlevel; -}; - /* used by the room module to keep track of users in rooms */ struct user_t { struct child_data *data; @@ -178,21 +176,16 @@ struct room_t { /* linked list for users, random access is rare */ struct user_t *users; + int num_users; }; +extern const struct roomdata_t netcosm_world[]; +extern const size_t netcosm_world_sz; +extern const char *netcosm_world_name; + /* called for every client */ void client_main(int sock, struct sockaddr_in *addr, int, int to_parent, int from_parent); -void first_run_setup(void); - -/* authorization */ -struct authinfo_t auth_check(const char *user, const char *pass); - -/* add or change a user, NOT reentrant */ -bool auth_user_add(const char *user, const char *pass, int authlevel); -bool auth_user_del(const char *user); -void auth_user_list(void); - void out(const char *fmt, ...) __attribute__((format(printf,1,2))); void out_raw(const unsigned char*, size_t); @@ -201,8 +194,8 @@ void telnet_handle_command(const unsigned char*); void telnet_echo_on(void); void telnet_echo_off(void); -void world_init(const struct roomdata_t *data, size_t sz); -bool world_load(const char *fname, const struct roomdata_t *data, size_t data_sz); +void world_init(const struct roomdata_t *data, size_t sz, const char *name); +bool world_load(const char *fname, const struct roomdata_t *data, size_t data_sz, const char *world_name); void world_save(const char *fname); struct room_t *room_get(room_id id); @@ -215,3 +208,4 @@ void world_free(void); void __attribute__((noreturn,format(printf,1,2))) error(const char *fmt, ...); void debugf_real(const char *fmt, ...); void remove_cruft(char*); +#endif |