summaryrefslogtreecommitdiff
path: root/src/upnp.rs
blob: b1422588f6477d173941fa07126379897fef95b3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
extern crate libc;

use self::libc::{uint32_t, uint16_t, uint8_t, c_char, c_uchar, c_int, c_void};
use std::ptr;

pub type GSSDPClient = *mut c_void;

#[link(name = "gssdp-1.0")]
extern {
    pub fn gssdp_client_new(main_context: *mut c_void, iface: *const c_char, error: *mut c_void) -> GSSDPClient;
    pub fn gssdp_client_get_interface(client: *mut GSSDPClient) -> *const c_char;
}

pub fn discover() {
    println!("Discovering...");
    unsafe {
        let mut client = gssdp_client_new(ptr::null_mut(), ptr::null(), ptr::null_mut());
        let iface = gssdp_client_get_interface(&client);
    }
    println!("Using interface: {}", iface);
}