diff options
| -rw-r--r-- | dund/dund.1 | 3 | ||||
| -rw-r--r-- | dund/dund.h | 1 | ||||
| -rw-r--r-- | dund/main.c | 11 | ||||
| -rw-r--r-- | dund/sdp.c | 8 | 
4 files changed, 20 insertions, 3 deletions
| diff --git a/dund/dund.1 b/dund/dund.1 index 895fc97a..09fb7f75 100644 --- a/dund/dund.1 +++ b/dund/dund.1 @@ -14,6 +14,9 @@ Show active DUN connections  \fB\-\-listen\fR \fB\-s\fR  Listen for DUN connections  .TP +\fB\-\-dialup\fR \fB\-u\fR +Listen for dialup/telephone connections +.TP  \fB\-\-connect\fR \fB\-c\fR <bdaddr>  Create DUN connection  .TP diff --git a/dund/dund.h b/dund/dund.h index 5a9a116d..c8761dac 100644 --- a/dund/dund.h +++ b/dund/dund.h @@ -33,6 +33,7 @@  #define LANACCESS	0  #define MROUTER		1  #define ACTIVESYNC	2 +#define DIALUP		3  /* DUN functions */  int dun_init(void); diff --git a/dund/main.c b/dund/main.c index 4aedebd7..06055fde 100644 --- a/dund/main.c +++ b/dund/main.c @@ -398,10 +398,11 @@ static struct option main_lopts[] = {  	{ "msdun",	2, 0, 'X' },  	{ "activesync",	0, 0, 'a' },  	{ "mrouter",	1, 0, 'm' }, +	{ "dialup",	1, 0, 'u' },  	{ 0, 0, 0, 0 }  }; -static char main_sopts[] = "hsc:k:Kr:i:lnp::DQ::AESMP:C::P:Xa"; +static char main_sopts[] = "hsc:k:Kr:i:lnp::DQ::AESMP:C::P:Xam:u";  static char main_help[] =   	"Bluetooth LAP (LAN Access over PPP) daemon version " VERSION " \n" @@ -410,6 +411,7 @@ static char main_help[] =  	"Options:\n"  	"\t--show --list -l          Show active LAP connections\n"  	"\t--listen -s               Listen for LAP connections\n" +	"\t--dialup -u               Pretend to be a dialup/telephone\n"  	"\t--connect -c <bdaddr>     Create LAP connection\n"  	"\t--mrouter -m <bdaddr>     Create mRouter connection\n"  	"\t--search -Q[duration]     Search and connect\n" @@ -539,6 +541,11 @@ int main(int argc, char **argv)  			type = MROUTER;  			break; +		case 'u': +			mode = LISTEN; +			type = DIALUP; +			break; +  		case 'h':  		default:  			printf(main_help); @@ -599,7 +606,7 @@ int main(int argc, char **argv)  		fd = open("/dev/null", O_RDWR);  		dup2(fd, 0); dup2(fd, 1); dup2(fd, 2);  		close(fd); -		 +  		setsid();  		chdir("/");  	} @@ -98,6 +98,9 @@ int dun_sdp_register(bdaddr_t *device, uint8_t channel, int type)  	case ACTIVESYNC:  		sdp_uuid128_create(&dun, (void *) async_uuid);  		break; +	case DIALUP: +		sdp_uuid16_create(&dun, DIALUP_NET_SVCLASS_ID); +		break;  	default:  		sdp_uuid16_create(&dun, LAN_ACCESS_SVCLASS_ID);  		break; @@ -106,7 +109,7 @@ int dun_sdp_register(bdaddr_t *device, uint8_t channel, int type)  	svclass = sdp_list_append(NULL, &dun);  	sdp_set_service_classes(record, svclass); -	if (type == LANACCESS) { +	if (type == LANACCESS || type == DIALUP) {  		sdp_uuid16_create(&profile[0].uuid, LAN_ACCESS_PROFILE_ID);  		profile[0].version = 0x0100;  		pfseq = sdp_list_append(NULL, &profile[0]); @@ -120,6 +123,9 @@ int dun_sdp_register(bdaddr_t *device, uint8_t channel, int type)  	case ACTIVESYNC:  		sdp_set_info_attr(record, "ActiveSync", NULL, NULL);  		break; +	case DIALUP: +		sdp_set_info_attr(record, "Dialup Networking", NULL, NULL); +		break;  	default:  		sdp_set_info_attr(record, "LAN Access Point", NULL, NULL);  		break; | 
