diff options
Diffstat (limited to 'source/include')
-rw-r--r-- | source/include/proto.h | 12 | ||||
-rw-r--r-- | source/include/rpc_secdes.h | 10 | ||||
-rwxr-xr-x | source/include/rpc_spoolss.h | 20 | ||||
-rw-r--r-- | source/include/smb.h | 10 |
4 files changed, 36 insertions, 16 deletions
diff --git a/source/include/proto.h b/source/include/proto.h index 8289412d7bc..1e6bee4badf 100644 --- a/source/include/proto.h +++ b/source/include/proto.h @@ -436,6 +436,7 @@ struct cli_connection* RpcHndList_get_connection(const POLICY_HND *hnd); /*The following definitions come from lib/util_seaccess.c */ +void se_map_generic(uint32 *access_mask, struct generic_mapping *mapping); BOOL se_access_check(SEC_DESC *sd, struct current_user *user, uint32 acc_desired, uint32 *acc_granted, uint32 *status); @@ -694,6 +695,7 @@ BOOL cli_unlink(struct cli_state *cli, char *fname); BOOL cli_mkdir(struct cli_state *cli, char *dname); BOOL cli_rmdir(struct cli_state *cli, char *dname); int cli_nt_create(struct cli_state *cli, char *fname, uint32 DesiredAccess); +int cli_nt_create_uni(struct cli_state *cli, char *fname, uint32 DesiredAccess); int cli_open(struct cli_state *cli, char *fname, int flags, int share_mode); BOOL cli_close(struct cli_state *cli, int fnum); BOOL cli_lock(struct cli_state *cli, int fnum, @@ -814,14 +816,17 @@ BOOL deal_with_creds(uchar sess_key[8], /*The following definitions come from libsmb/namequery.c */ -BOOL name_status(int fd,char *name,int name_type,BOOL recurse, - struct in_addr to_ip,char *master,char *rname); +struct node_status *name_status_query(int fd,struct nmb_name *name, + struct in_addr to_ip, int *num_names); +BOOL name_status_find(int type, struct in_addr to_ip, char *name); struct in_addr *name_query(int fd,const char *name,int name_type, BOOL bcast,BOOL recurse, struct in_addr to_ip, int *count); FILE *startlmhosts(char *fname); BOOL getlmhostsent( FILE *fp, pstring name, int *name_type, struct in_addr *ipaddr); void endlmhosts(FILE *fp); +BOOL name_resolve_bcast(const char *name, int name_type, + struct in_addr **return_ip_list, int *return_count); BOOL is_ip_address(const char *name); BOOL resolve_name(const char *name, struct in_addr *return_ip, int name_type); BOOL resolve_srv_name(const char* srv_name, fstring dest_host, @@ -856,7 +861,7 @@ int name_len(char *s1); /*The following definitions come from libsmb/nterr.c */ BOOL get_safe_nt_error_msg(uint32 nt_code,char *msg, size_t len); -const char *get_nt_error_msg(uint32 nt_code); +char *get_nt_error_msg(uint32 nt_code); /*The following definitions come from libsmb/passchange.c */ @@ -1790,6 +1795,7 @@ BOOL get_specific_param(NT_PRINTER_INFO_LEVEL printer, uint32 level, fstring value, uint8 **data, uint32 *type, uint32 *len); uint32 nt_printing_setsec(char *printername, SEC_DESC_BUF *secdesc_ctr); BOOL nt_printing_getsec(char *printername, SEC_DESC_BUF **secdesc_ctr); +void map_printer_permissions(SEC_DESC *sd); BOOL print_access_check(struct current_user *user, int snum, int access_type); BOOL print_time_access_check(int snum); #endif diff --git a/source/include/rpc_secdes.h b/source/include/rpc_secdes.h index a5c5758434f..ab8a24d2d61 100644 --- a/source/include/rpc_secdes.h +++ b/source/include/rpc_secdes.h @@ -156,4 +156,14 @@ typedef struct sec_desc_buf_info #define _SEC_DESC_BUF #endif +/* A type to describe the mapping of generic access rights to object + specific access rights. */ + +typedef struct generic_mapping { + uint32 generic_read; + uint32 generic_write; + uint32 generic_execute; + uint32 generic_all; +} GENERIC_MAPPING; + #endif /* _RPC_SECDES_H */ diff --git a/source/include/rpc_spoolss.h b/source/include/rpc_spoolss.h index 94cfb45dfed..33541c12fe0 100755 --- a/source/include/rpc_spoolss.h +++ b/source/include/rpc_spoolss.h @@ -148,24 +148,19 @@ #define PRINTER_STATUS_POWER_SAVE 0x01000000 -/* Printer permissions ACE settings. NT4 uses generic and standard access - rights whereas NT5 converts them all to object specific access rights. */ - -#define PRINTER_ACE_FULL_CONTROL GENERIC_ALL_ACCESS -#define PRINTER_ACE_MANAGE_DOCUMENTS READ_CONTROL_ACCESS -#define PRINTER_ACE_PRINT \ - (GENERIC_READ_ACCESS | GENERIC_WRITE_ACCESS | GENERIC_EXECUTE_ACCESS) - -#define PRINTER_ACE_NT5_FULL_CONTROL 0x000f000c -#define PRINTER_ACE_NT5_PRINT 0x00020000 -#define PRINTER_ACE_NT5_MANAGE_DOCUMENTS 0x00020008 - #define SERVER_ACCESS_ADMINISTER 0x00000001 #define SERVER_ACCESS_ENUMERATE 0x00000002 #define PRINTER_ACCESS_ADMINISTER 0x00000004 #define PRINTER_ACCESS_USE 0x00000008 #define JOB_ACCESS_ADMINISTER 0x00000010 +/* ACE masks for the various print permissions */ + +#define PRINTER_ACE_FULL_CONTROL GENERIC_ALL_ACCESS +#define PRINTER_ACE_MANAGE_DOCUMENTS READ_CONTROL_ACCESS +#define PRINTER_ACE_PRINT \ + (GENERIC_READ_ACCESS | GENERIC_WRITE_ACCESS | GENERIC_EXECUTE_ACCESS) + /* Access rights for print servers */ #define SERVER_ALL_ACCESS STANDARD_RIGHTS_REQUIRED_ACCESS|SERVER_ACCESS_ADMINISTER|SERVER_ACCESS_ENUMERATE #define SERVER_READ STANDARD_RIGHTS_READ_ACCESS|SERVER_ACCESS_ENUMERATE @@ -1824,5 +1819,4 @@ SPOOL_R_REPLY_RRPCN; #define PRINTER_DRIVER_VERSION 2 #define PRINTER_DRIVER_ARCHITECTURE "Windows NT x86" - #endif /* _RPC_SPOOLSS_H */ diff --git a/source/include/smb.h b/source/include/smb.h index 0d802009fdf..a57cdc0e518 100644 --- a/source/include/smb.h +++ b/source/include/smb.h @@ -1622,6 +1622,16 @@ struct nmb_name { unsigned int name_type; }; + +/* A netbios node status array element. */ +struct node_status { + char name[16]; + unsigned char type; + unsigned char flags; +}; + + + #define AGENT_CMD_CON 0 #define AGENT_CMD_CON_ANON 2 #define AGENT_CMD_CON_REUSE 1 |