00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032 #define LPR_MAX_QUEUE 31
00033 #define LPR_MAX_P 31
00034 #define LPR_MAX_C 31
00035 #define LPR_MAX_H 31
00036 #define LPR_MAX_J 99
00037 #define LPR_MAX_L 31
00038 #define LPR_MAX_M 31
00039 #define LPR_MAX_N 131
00040 #define LPR_MAX_P 31
00041 #define LPR_MAX_T 79
00042 #define LPR_MAX_I 8
00043 #define LPR_MAX_W 8
00044 #define LPR_MAX_1 131
00045 #define LPR_MAX_2 131
00046 #define LPR_MAX_3 131
00047 #define LPR_MAX_4 131
00048
00049
00050 #define LPR_MAX_DEC 31
00051
00052
00053 #define LPR_MAX_5f 31
00054 #define LPR_MAX_5H 31
00055 #define LPR_MAX_O 131
00056 #define LPR_MAX_5P 131
00057 #define LPR_MAX_5S 31
00058 #define LPR_MAX_5T 31
00059 #define LPR_MAX_5y 131
00060
00061
00062
00063 struct REMOTEDEST
00064 {
00065 char *node;
00066 char printer[LPR_MAX_QUEUE + 1];
00067 gu_boolean osf_extensions;
00068 gu_boolean solaris_extensions;
00069 gu_boolean ppr_extensions;
00070 } ;
00071
00072
00073 #ifdef __GNUC__
00074 void uprint_error_callback(const char *format, ...) __attribute__ ((format (printf, 1, 2)));
00075 #endif
00076 void uprint_error_callback(const char *format, ...);
00077
00078
00079 int uprint_lpr_make_connection(const char address[]);
00080 int uprint_lpr_make_connection_with_failover(const char address[]);
00081 int uprint_lpr_send_cmd(int fd, const char text[], int length);
00082 int uprint_lpr_response(int fd, int timeout);
00083
00084
00085 const char *uprint_lpr_nodename(void);
00086 int uprint_lpr_nextid(void);
00087 int uprint_file_stdin(int *length);
00088 int uprint_lpr_send_data_file(int sourcefd, int sockfd);
00089
00090
00091 gu_boolean printdest_claim_ppr(const char dest[]);
00092 gu_boolean printdest_claim_sysv(const char dest[]);
00093 gu_boolean printdest_claim_bsd(const char dest[]);
00094 gu_boolean printdest_claim_remote(const char dest[], struct REMOTEDEST *scratchpad);
00095
00096
00097 extern int uprint_errno;
00098 extern const char *uprint_arrest_interest_interval;
00099 void *uprint_new(const char *fakername, int argc, const char *argv[]);
00100 int uprint_delete(void *p);
00101
00102 const char *uprint_set_dest(void *p, const char *dest);
00103 const char *uprint_get_dest(void *p);
00104 int uprint_set_files(void *p, const char *files[]);
00105
00106 const char *uprint_set_user(void *p, uid_t uid, gid_t gid, const char *user);
00107 const char *uprint_get_user(void *p);
00108 const char *uprint_set_from_format(void *p, const char *from_format);
00109 const char *uprint_set_lpr_mailto(void *p, const char *lpr_mailto);
00110 const char *uprint_set_lpr_mailto_host(void *p, const char *lpr_mailto_host);
00111 const char *uprint_set_fromhost(void *p, const char *fromhost);
00112 const char *uprint_set_proxy_class(void *p, const char *proxy_class);
00113 const char *uprint_set_pr_title(void *p, const char *title);
00114 const char *uprint_set_lpr_class(void *p, const char *lpr_class);
00115 const char *uprint_set_jobname(void *p, const char *lpr_jobname);
00116
00117 const char *uprint_set_content_type_lp(void *p, const char *content_type);
00118 int uprint_set_content_type_lpr(void *p, char content_type);
00119 int uprint_set_copies(void *p, int copies);
00120 gu_boolean uprint_set_banner(void *p, gu_boolean banner);
00121 gu_boolean uprint_set_nobanner(void *p, gu_boolean nobanner);
00122 gu_boolean uprint_set_filebreak(void *p, gu_boolean filebreak);
00123 int uprint_set_priority(void *p, int priority);
00124 gu_boolean uprint_set_immediate_copy(void *p, gu_boolean val);
00125
00126 const char *uprint_set_form(void *p, const char *formname);
00127 const char *uprint_set_charset(void *p, const char *charset);
00128 int uprint_set_length(void *p, const char *length);
00129 int uprint_set_width(void *p, const char *width);
00130 int uprint_set_indent(void *p, const char *indent);
00131 int uprint_set_lpi(void *p, const char *lpi);
00132 int uprint_set_cpi(void *p, const char *cpi);
00133 const char *uprint_set_troff_1(void *p, const char *font);
00134 const char *uprint_set_troff_2(void *p, const char *font);
00135 const char *uprint_set_troff_3(void *p, const char *font);
00136 const char *uprint_set_troff_4(void *p, const char *font);
00137
00138 const char *uprint_set_lp_interface_options(void *p, const char *lp_interface_options);
00139 const char *uprint_set_lp_filter_modes(void *p, const char *lp_filter_options);
00140 const char *uprint_set_lp_pagelist(void *p, const char *lp_pagelist);
00141 const char *uprint_set_lp_handling(void *p, const char *lp_handling);
00142 const char *uprint_set_osf_LT_inputtray(void *p, const char *inputtray);
00143 const char *uprint_set_osf_GT_outputtray(void *p, const char *outputtray);
00144 const char *uprint_set_osf_O_orientation(void *p, const char *orientation);
00145 const char *uprint_set_osf_K_duplex(void *p, const char *duplex);
00146 int uprint_set_nup(void *p, int nup);
00147
00148 gu_boolean uprint_set_unlink(void *p, gu_boolean do_unlink);
00149 gu_boolean uprint_set_notify_email(void *p, gu_boolean notify_email);
00150 gu_boolean uprint_set_notify_write(void *p, gu_boolean notify_write);
00151 gu_boolean uprint_set_show_jobid(void *p, gu_boolean say_jobid);
00152
00153 const char *uprint_set_ppr_responder(void *p, const char *ppr_responder);
00154 const char *uprint_set_ppr_responder_address(void *p, const char *ppr_responder_address);
00155 const char *uprint_set_ppr_responder_options(void *p, const char *ppr_responder_options);
00156
00157
00158 int uprint_loop_check(const char *myname);
00159
00160
00161 int uprint_run(uid_t uid, gid_t gid, const char *exepath, const char *const argv[]);
00162
00163
00164 const char *uprint_strerror(int errnum);
00165
00166
00167 int uprint_print(void *p, gu_boolean remote_too);
00168 int uprint_print_argv_sysv(void *p, const char **argv, int argv_len);
00169 int uprint_print_argv_bsd(void *p, const char **argv, int argv_len);
00170 int uprint_print_argv_ppr(void *p, const char **argv, int argv_len);
00171 int uprint_print_rfc1179(void *p, struct REMOTEDEST *scratchpad);
00172
00173
00174 int uprint_lpq(uid_t uid, gid_t gid, const char agent[], const char queue[], int format, const char *arglist[], gu_boolean remote_too);
00175
00176
00177 int uprint_lpq_rfc1179(const char *queue, int format, const char **arglist, struct REMOTEDEST *scratchpad);
00178
00179
00180 int uprint_lprm(uid_t uid, gid_t gid, const char agent[], const char proxy_class[], const char queue[], const char **arglist, gu_boolean remote_too);
00181
00182
00183 int uprint_lprm_rfc1179(const char *user, const char *athost, const char *queue, const char **arglist, struct REMOTEDEST *scratchpad);
00184
00185
00186 const char *uprint_default_destinations_lpr(void);
00187 const char *uprint_default_destinations_lp(void);
00188 const char *uprint_path_lpr(void);
00189 const char *uprint_path_lpq(void);
00190 const char *uprint_path_lprm(void);
00191 const char *uprint_path_lpc(void);
00192 const char *uprint_path_lp(void);
00193 const char *uprint_path_lpstat(void);
00194 const char *uprint_path_cancel(void);
00195 gu_boolean uprint_lpr_installed(void);
00196 gu_boolean uprint_lp_installed(void);
00197
00198
00199 #define UPE_NONE 0
00200 #define UPE_MALLOC 1
00201 #define UPE_BADARG 2
00202 #define UPE_FORK 3
00203 #define UPE_CORE 4
00204 #define UPE_KILLED 5
00205 #define UPE_WAIT 6
00206 #define UPE_EXEC 7
00207 #define UPE_CHILD 8
00208 #define UPE_NODEST 9
00209 #define UPE_UNDEST 10
00210 #define UPE_TOOMANY 11
00211 #define UPE_BADSYS 12
00212 #define UPE_TEMPFAIL 13
00213 #define UPE_NOSPACE 14
00214 #define UPE_INTERNAL 15
00215 #define UPE_DENIED 16
00216 #define UPE_NOFILE 17
00217 #define UPE_BADORDER 18
00218 #define UPE_BADCONFIG 19
00219 #define UPE_SETUID 20
00220
00221