Ircxd.DCC (ircxd v1.1.0)

Copy Markdown View Source

Helpers for CTCP DCC query payloads.

This module only parses and serializes DCC negotiation messages. Direct TCP connections, file writes, and user-consent policy belong in the host application.

Summary

Types

t()

A decoded DCC negotiation payload.

Functions

Encodes a DCC payload for a command type.

Encodes a DCC ACCEPT payload.

Encodes a DCC CHAT payload.

Encodes a DCC RESUME payload.

Parses a CTCP DCC payload.

Types

t()

@type t() :: %Ircxd.DCC{
  argument: String.t(),
  extra: [String.t()],
  host: String.t(),
  port: non_neg_integer(),
  position: non_neg_integer() | nil,
  raw_host: String.t(),
  reverse?: boolean(),
  type: String.t()
}

A decoded DCC negotiation payload.

Functions

encode(type, argument, host, port, extra \\ [])

@spec encode(String.t(), String.t(), String.t() | tuple(), non_neg_integer(), [
  String.t() | integer()
]) ::
  String.t()

Encodes a DCC payload for a command type.

encode_accept(filename, host, port, position)

@spec encode_accept(String.t(), String.t(), non_neg_integer(), non_neg_integer()) ::
  String.t()

Encodes a DCC ACCEPT payload.

encode_chat(host, port, argument \\ "chat")

@spec encode_chat(String.t(), non_neg_integer(), String.t()) :: String.t()

Encodes a DCC CHAT payload.

encode_resume(filename, host, port, position)

@spec encode_resume(String.t(), String.t(), non_neg_integer(), non_neg_integer()) ::
  String.t()

Encodes a DCC RESUME payload.

encode_send(filename, host, port, extra \\ [])

@spec encode_send(String.t(), String.t(), non_neg_integer(), [String.t() | integer()]) ::
  String.t()

Encodes a DCC SEND payload.

parse(params)

@spec parse(Ircxd.CTCP.t() | String.t()) :: {:ok, t()} | {:error, atom()}

Parses a CTCP DCC payload.