5 #include <libsmbclient.h>
7 #define MAX_BUFF_SIZE 255
8 char g_workgroup
[MAX_BUFF_SIZE
];
9 char g_username
[MAX_BUFF_SIZE
];
10 char g_password
[MAX_BUFF_SIZE
];
11 char g_server
[MAX_BUFF_SIZE
];
12 char g_share
[MAX_BUFF_SIZE
];
14 char g_print_user
[MAX_BUFF_SIZE
];
15 char g_print_name
[MAX_BUFF_SIZE
];
16 unsigned int g_print_id
;
17 unsigned int g_print_priority
;
18 unsigned int g_print_size
;
20 unsigned int print_ids
[MAX_BUFF_SIZE
];
21 unsigned int print_id_count
;
24 void auth_fn(const char *server
, const char *share
, char *workgroup
, int wgmaxlen
,
25 char *username
, int unmaxlen
, char *password
, int pwmaxlen
)
28 strncpy(workgroup
, g_workgroup
, wgmaxlen
- 1);
30 strncpy(username
, g_username
, unmaxlen
- 1);
32 strncpy(password
, g_password
, pwmaxlen
- 1);
34 strcpy(g_server
, server
);
35 strcpy(g_share
, share
);
39 void print_list_fn_2(struct print_job_info
*pji
)
42 print_ids
[print_id_count
] = pji
->id
;
45 /* fprintf(stdout, "Call to Second Print Function - Print job: ID: %u, Prio: %u, Size: %u, User: %s, Name: %s\n",
46 pji->id, pji->priority, pji->size, pji->user, pji->name); */
50 void print_list_fn(struct print_job_info
*pji
)
54 g_print_priority
= pji
->priority
;
55 g_print_size
= pji
->size
;
56 strcpy(g_print_user
,pji
->user
);
57 strcpy(g_print_name
,pji
->name
);
59 /* fprintf(stdout, "Call to First Print Function - Print job: ID: %u, Prio: %u, Size: %u, User: %s, Name: %s\n",
60 pji->id, pji->priority, pji->size, pji->user, pji->name); */
64 int main(int argc
, char** argv
)
70 char url
[MAX_BUFF_SIZE
];
73 bzero(g_workgroup
,MAX_BUFF_SIZE
);
74 bzero(url
,MAX_BUFF_SIZE
);
75 bzero(g_print_user
,MAX_BUFF_SIZE
);
76 bzero(g_print_name
,MAX_BUFF_SIZE
);
87 strncpy(g_workgroup
,argv
[1],strlen(argv
[1]));
88 strncpy(g_username
,argv
[2],strlen(argv
[2]));
89 strncpy(g_password
,argv
[3],strlen(argv
[3]));
90 strncpy(url
,argv
[4],strlen(argv
[4]));
92 msg_len
= strlen(argv
[5])+1;
93 message
= malloc(msg_len
);
94 message
[msg_len
- 1] = 0;
95 strncpy(message
,argv
[5],msg_len
);
96 /* printf("Message: %s\n",message); */
97 /* printf("Message len: %i\n",msg_len); */
99 smbc_init(auth_fn
, 0);
101 fd
= smbc_open(url
,O_RDWR
| O_CREAT
, 0666);
102 smbc_write(fd
, message
, msg_len
);
107 smbc_print_file(url
,argv
[6]);
108 smbc_print_file(url
,argv
[6]);
109 smbc_print_file(url
,argv
[6]);
111 smbc_list_print_jobs(argv
[6],print_list_fn
);
113 if ( smbc_unlink_print_job(argv
[6],g_print_id
) == 0 )
115 if ( smbc_list_print_jobs(argv
[6],print_list_fn_2
) == 0 )
119 for ( i
=0; i
<print_id_count
; i
++ )
121 if ( g_print_id
== print_ids
[i
] )