mirror of
https://github.com/samba-team/samba.git
synced 2025-02-23 09:57:40 +03:00
s3-vlp: drastically shrink size and dependencies of the virtual line printer.
This gets vlp from 13M down to 214K on my box. Guenther
This commit is contained in:
parent
6395bc55db
commit
2579afc897
@ -1225,13 +1225,10 @@ NTLM_AUTH_OBJ = ${NTLM_AUTH_OBJ1} $(LIBSAMBA_OBJ) $(POPT_LIB_OBJ) \
|
|||||||
$(LIBNDR_GEN_OBJ0) $(LIBNDR_GEN_OBJ1) @BUILD_INIPARSER@
|
$(LIBNDR_GEN_OBJ0) $(LIBNDR_GEN_OBJ1) @BUILD_INIPARSER@
|
||||||
|
|
||||||
|
|
||||||
VLP_OBJ1 = printing/tests/vlp.o $(RPC_CLIENT_OBJ1) $(RPC_PARSE_OBJ2) $(RPC_CLIENT_OBJ) ../librpc/rpc/binding.o
|
VLP_OBJ = printing/tests/vlp.o \
|
||||||
|
../lib/util/util_tdb.o \
|
||||||
VLP_OBJ = $(VLP_OBJ1) $(PARAM_OBJ) $(LIBSMB_OBJ) \
|
$(LIBSAMBAUTIL_OBJ) \
|
||||||
$(LIB_NONSMBD_OBJ) $(KRBCLIENT_OBJ) $(LIBMSRPC_GEN_OBJ) \
|
param/util.o
|
||||||
$(READLINE_OBJ) $(POPT_LIB_OBJ) \
|
|
||||||
$(PASSDB_OBJ) $(SMBLDAP_OBJ) $(GROUPDB_OBJ) $(LDB_OBJ) \
|
|
||||||
$(DISPLAY_SEC_OBJ)
|
|
||||||
|
|
||||||
RPC_OPEN_TCP_OBJ = torture/rpc_open_tcp.o \
|
RPC_OPEN_TCP_OBJ = torture/rpc_open_tcp.o \
|
||||||
$(LIBSMB_OBJ) \
|
$(LIBSMB_OBJ) \
|
||||||
@ -2515,13 +2512,11 @@ bin/winbindd@EXEEXT@: $(BINARY_PREREQS) $(WINBINDD_OBJ) @BUILD_POPT@ @LIBTALLOC_
|
|||||||
$(PASSDB_LIBS) $(LIBTALLOC_LIBS) $(LIBTDB_LIBS) $(LIBWBCLIENT_LIBS) \
|
$(PASSDB_LIBS) $(LIBTALLOC_LIBS) $(LIBTDB_LIBS) $(LIBWBCLIENT_LIBS) \
|
||||||
$(ZLIB_LIBS)
|
$(ZLIB_LIBS)
|
||||||
|
|
||||||
bin/vlp@EXEEXT@: $(BINARY_PREREQS) $(VLP_OBJ) @LIBTALLOC_TARGET@ @LIBTDB_TARGET@ @LIBWBCLIENT_TARGET@
|
bin/vlp@EXEEXT@: $(BINARY_PREREQS) $(VLP_OBJ) @LIBTDB_TARGET@
|
||||||
@echo "Linking $@"
|
@echo "Linking $@"
|
||||||
@$(CC) -o $@ $(VLP_OBJ) $(LDFLAGS) $(DYNEXP) \
|
@$(CC) -o $@ $(VLP_OBJ) $(LDFLAGS) $(DYNEXP) \
|
||||||
$(TERMLDFLAGS) $(TERMLIBS) $(LIBS) $(POPT_LIBS) \
|
$(TERMLDFLAGS) $(TERMLIBS) $(LIBS) $(POPT_LIBS) \
|
||||||
$(KRB5LIBS) $(LDAP_LIBS) $(NSCD_LIBS) \
|
$(LIBTDB_LIBS)
|
||||||
$(LIBTALLOC_LIBS) $(LIBTDB_LIBS) $(LIBWBCLIENT_LIBS) \
|
|
||||||
$(ZLIB_LIBS)
|
|
||||||
|
|
||||||
@WINBIND_NSS@: $(BINARY_PREREQS) $(WINBIND_NSS_OBJ)
|
@WINBIND_NSS@: $(BINARY_PREREQS) $(WINBIND_NSS_OBJ)
|
||||||
@echo "Linking $@"
|
@echo "Linking $@"
|
||||||
|
@ -21,6 +21,10 @@
|
|||||||
|
|
||||||
#include "includes.h"
|
#include "includes.h"
|
||||||
|
|
||||||
|
#ifdef malloc
|
||||||
|
#undef malloc
|
||||||
|
#endif
|
||||||
|
|
||||||
#define PRINT_FIRSTJOB "100"
|
#define PRINT_FIRSTJOB "100"
|
||||||
|
|
||||||
static TDB_CONTEXT *tdb;
|
static TDB_CONTEXT *tdb;
|
||||||
@ -215,7 +219,6 @@ static int print_command(int argc, char **argv)
|
|||||||
struct passwd *pw;
|
struct passwd *pw;
|
||||||
TDB_DATA value, queue;
|
TDB_DATA value, queue;
|
||||||
struct vlp_job job;
|
struct vlp_job job;
|
||||||
int i;
|
|
||||||
|
|
||||||
if (argc < 3) {
|
if (argc < 3) {
|
||||||
printf("Usage: print <printername> <jobname>\n");
|
printf("Usage: print <printername> <jobname>\n");
|
||||||
@ -228,18 +231,13 @@ static int print_command(int argc, char **argv)
|
|||||||
|
|
||||||
/* Create a job record */
|
/* Create a job record */
|
||||||
|
|
||||||
for (i = 2; i < argc; i++) {
|
slprintf(job.jobname, sizeof(job.jobname) - 1, "%s", argv[2]);
|
||||||
fstrcat(job.jobname, argv[i]);
|
|
||||||
if (i < argc - 1) {
|
|
||||||
fstrcat(job.jobname, " ");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!(pw = getpwuid(getuid()))) {
|
if (!(pw = getpwuid(getuid()))) {
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
fstrcpy(job.owner, pw->pw_name);
|
slprintf(job.owner, sizeof(job.owner) - 1, "%s", pw->pw_name);
|
||||||
|
|
||||||
job.jobid = next_jobnum(printer);
|
job.jobid = next_jobnum(printer);
|
||||||
job.size = 666;
|
job.size = 666;
|
||||||
@ -255,8 +253,7 @@ static int print_command(int argc, char **argv)
|
|||||||
|
|
||||||
/* Add job to end of queue */
|
/* Add job to end of queue */
|
||||||
|
|
||||||
queue.dptr = (unsigned char *)SMB_MALLOC(value.dsize +
|
queue.dptr = (unsigned char *)malloc(value.dsize + sizeof(struct vlp_job));
|
||||||
sizeof(struct vlp_job));
|
|
||||||
if (!queue.dptr) return 1;
|
if (!queue.dptr) return 1;
|
||||||
|
|
||||||
memcpy(queue.dptr, value.dptr, value.dsize);
|
memcpy(queue.dptr, value.dptr, value.dsize);
|
||||||
@ -382,7 +379,7 @@ int main(int argc, char **argv)
|
|||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!strnequal(argv[1], "tdbfile", strlen("tdbfile"))) {
|
if (strncmp(argv[1], "tdbfile", strlen("tdbfile")) != 0) {
|
||||||
usage();
|
usage();
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user