LINUX.ORG.RU

Избранные сообщения max_lapshin

IPv6 multicast - что делаю не так?

Форум — Development

ЛОР, нужна консультация эксперта по сетевому программированию и IPv6. Стал ковырять реализацию UPnP на растишке. Пилю обнаружение устройств через мультикаст. Через IPv4 работает норм, с IPv6 пока фигня [читать дальше...]

В UPnP для обнаружения устройств по IPv6 юзаются два мультикаст-адреса: ff02::c и ff05::C. Пытаюсь создать сокет, чтобы получать мультикаст-пакеты:

use std::net;

static SSDP_PORT: u16 = 1900;
static SSDP_MULTICAST_ADDR: &str = "ff02::c";     // падает
// static SSDP_MULTICAST_ADDR: &str = "ff05::c";  // а так работает

fn main() {
    let addr: net::Ipv6Addr = SSDP_MULTICAST_ADDR.parse().unwrap();
    let socket_addr = net::SocketAddr::new(addr.into(), SSDP_PORT);
    let socket = net::UdpSocket::bind(&socket_addr).expect(&format!("cannot bind to {}", socket_addr));
    socket.join_multicast_v6(&addr, 0).expect(&format!("Cannot join multicast group {}", addr));
}

Со адресом ff05::c всё работает, с адресом ff02::c падает с EINVAL при попытке забиндить сокет:

cargo run --bin test                                                                                                                                                               ~/src/sbox/rust-multicast
    Finished dev [unoptimized + debuginfo] target(s) in 0.06s
     Running `target/debug/test`
thread 'main' panicked at 'cannot bind to [ff02::c]:1900: Os { code: 22, kind: InvalidInput, message: "Invalid argument" }', libcore/result.rs:945:5

Что делаю не так?

 , , ,

HeipaVai1o
()

Building Tiny Rust Binaries for Embedded Linux

Форум — Development

Сабж.

TL;DR: растоман последовательно уменьшает размер собираемого бинарника на примере хеллоуворлда с ~6 Мб до ~200 кб, используя ряд тонких настроек Cargo и LLVM, а также прибегая к помощи Xargo и upx.

 ,

Virtuos86
()

Инженер по поддержке и внедрению Flussonic (Москва/удаленно)

Форум — Job

Требуется человек, который возьмет на себя:

  • техническую поддержку пользователей Flussonic (не работает, всё сломалось)
  • первичную техническую помощь по внедрению и развертыванию Flussonic

Хорошим бонусом будет умение вместе с желанием писать связные тексты для документации.

Кандидат должен уметь:

  • с закрытыми глазами поставить и настроить Linux, знать как пользоваться monit, runit, strace, iostat, iotop и т.п.
  • объяснить, как общается браузер по HTTP, как отлаживать это общение
  • собрать минимальный сайт из 3-х страничек на чем угодно. Кроме перла.
  • общаться с разработчиками что бы они делали так, что бы он меньше работал
  • писать и читать по-английски
  • терпеливо собирать с клиентов внятные описания их проблем

Хорошо бы что бы кандидат умел:

  • писать тексты с описанием своих приключений
  • минимально пользоваться ffmpeg

Кандидат должен быть готов в процессе работы научиться:

  • эксплуатировать сверхвысоконагруженных серверов на erlang
  • работать с видео потоками и видеофайлами
  • идентифицировать проблемы с доставкой видео до пользователя

Работа возможна как в офисе в Москве, так и удаленно. График работы возможен гибкий, приемлемы варианты вида с 12:00 до 20:00 или даже с 16:00 до 24:00 по московскому времени что бы успевать помогать американскому офису.

Общение с клиентами происходит исключительно в письменной форме: форум, почта, тикеты и изредка скайп.

При работе удаленно надо быть готовым к появлению некоторого хлама дома, а именно: телевизионных приставок, SmartTV, андроидных девайсов, IP камер, плат спутникового захвата и прочих подобных устройств, отличающихся веселыми проблемами с воспроизведением и захватом видео.

Во время испытательного срока кандидат пройдет КМБ по настройке и эксплуатации Flussonic.

Клиенты русскоговорящие, так что преимущественно общение будет с админами, программистами и другими достаточно квалифицированными людьми. Помогать домохозяйкам скомпилять ядро не потребуется.

Предлагаемая вилка от 50 тыс до 90 тыс рублей в месяц. На зарплату влияет первичный набор умений.

Резюме просьба присылать на max@erlyvideo.ru

 , ,

max_lapshin
()