1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76
|
/*
OBEX PUSH ObexFTP C client example
Copyright (c) 2007 Christian W. Zuckschwerdt <zany@triq.net>
Compile with:
gcc -Wall $(pkg-config --libs obexftp) -o c_example_obex_push c_example_obex_push.c
*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <obexftp/client.h> /*!!!*/
int main(int argc, char *argv[])
{
char *device = NULL;
int channel = -1;
char *filepath, *filename;
obexftp_client_t *cli = NULL; /*!!!*/
int ret;
/* Get the filename, device and optional channel */
if (argc < 3) {
fprintf(stderr, "Usage: %s <filename> <bt_addr> [<channel>]\n", argv[0]);
exit(1);
}
filepath = argv[1];
device = argv[2];
if (argc > 3)
channel = atoi(argv[3]);
else
channel = obexftp_browse_bt_push(device); /*!!!*/
/* Extract basename from file path */
filename = strrchr(filepath, '/');
if (!filename)
filename = filepath;
else
filename++;
/* Open connection */
cli = obexftp_open(OBEX_TRANS_BLUETOOTH, NULL, NULL, NULL); /*!!!*/
if (cli == NULL) {
fprintf(stderr, "Error opening obexftp client\n");
exit(1);
}
/* Connect to device */
ret = obexftp_connect_push(cli, device, channel); /*!!!*/
if (ret < 0) {
fprintf(stderr, "Error connecting to obexftp device\n");
obexftp_close(cli);
cli = NULL;
exit(1);
}
/* Push file */
ret = obexftp_put_file(cli, filepath, filename); /*!!!*/
if (ret < 0) {
fprintf(stderr, "Error putting file\n");
}
/* Disconnect */
ret = obexftp_disconnect(cli); /*!!!*/
if (ret < 0) {
fprintf(stderr, "Error disconnecting the client\n");
}
/* Close */
obexftp_close(cli); /*!!!*/
cli = NULL;
exit(0);
}
|