2 * Copyright 2000, International Business Machines Corporation and others.
5 * This software has been released under the terms of the IBM Public
6 * License. For details, see the LICENSE file in the top-level source
7 * directory or online at http://www.openafs.org/dl/license10.html
10 #include <afsconfig.h>
11 #include <afs/param.h>
14 #include <sys/types.h>
16 #include <netinet/in.h>
23 #define N_SECURITY_OBJECTS 1
28 main(int argc
, char **argv
)
30 struct rx_securityClass
*(securityObjects
[N_SECURITY_OBJECTS
]);
31 struct rx_service
*service
;
33 /* Initialize Rx, telling it port number this server will use for its single service */
34 if (rx_Init(BULK_SERVER_PORT
) < 0)
37 /* Create a single security object, in this case the null security object, for unauthenticated connections, which will be used to control security on connections made to this server */
38 securityObjects
[RX_SECIDX_NULL
] = rxnull_NewServerSecurityObject();
39 if (securityObjects
[RX_SECIDX_NULL
] == (struct rx_securityClass
*)0)
40 Quit("rxnull_NewServerSecurityObject");
42 /* Instantiate a single BULK service. The rxgen-generated procedure which is called to decode requests is passed in here (BULK_ExecuteRequest). */
44 rx_NewService(0, BULK_SERVICE_ID
, "BULK", securityObjects
,
45 N_SECURITY_OBJECTS
, BULK_ExecuteRequest
);
46 if (service
== (struct rx_service
*)0)
47 Quit("rx_NewService");
48 rx_SetMaxProcs(service
, 2);
50 rx_StartServer(1); /* Donate this process to the server process pool */
51 Quit("StartServer returned?");
55 BULK_FetchFile(struct rx_call
*call
, int verbose
, char *name
)
61 printf("Fetch file %s\n", name
);
62 fd
= open(name
, O_RDONLY
, 0);
63 if (fd
< 0 || fstat(fd
, &status
) < 0) {
65 printf("Failed to open %s\n", name
);
69 error
= bulk_SendFile(fd
, call
, &status
);
76 BULK_StoreFile(struct rx_call
*call
, int verbose
, char *name
)
82 printf("Store file %s\n", name
);
83 fd
= open(name
, O_CREAT
| O_TRUNC
| O_WRONLY
, 0666);
84 if (fd
< 0 || fstat(fd
, &status
) < 0) {
85 fprintf(stderr
, "Could not create %s\n", name
);
89 error
= bulk_ReceiveFile(fd
, call
, &status
);